package com.thinkcube.edutainment.domain.data;

import android.os.Parcel;
import android.os.Parcelable;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Shanuka @Cyberlmj 10:13:18 PM Email: shanuka.gayashan@cyberlmj.com
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class CourseData implements Parcelable {
	@JsonProperty("course_id")
	String courseId;
	@JsonProperty("course_code")
	String courseCode;
	@JsonProperty("course_title")
	String courseTitle;
	@JsonProperty("course_description")
	String courseDescription;
	@JsonProperty("course_price")
	String coursePrice;
	@JsonProperty("course_rate_value")
	String courseRating;
	@JsonProperty("num_of_students")
	String numOfStudents;
	@JsonProperty("course_icon_small_url")
	String courseIconSmall;
	@JsonProperty("course_icon_normal_url")
	String courseIconLarge;
	@JsonProperty("course_cover_image_small_url")
	String courseCoverImageSnall;

	@JsonProperty("course_cover_image_normal_url")
	String courseCoverImageLarge;

	@JsonProperty("author_id")
	String teacherId;
	@JsonProperty("author_name")
	String teacherFullName;
	@JsonProperty("author_description")
	String teacherDescription;
	@JsonProperty("author_icon_small")
	String teacherIcon;
	@JsonProperty("course_micro_payments")
	PaymentData paymentData;

	@JsonProperty("course_in_wishList")
	String hasWishList;

	@JsonProperty("course_subscription_plan")
	String subscription_plan;

	@JsonProperty("course_preview_video_url")
	String coursePreviewVedioUrl;

	@JsonProperty("is_course_purchased")
	String isCoursePurchased;

	@JsonProperty("progress")
	String progress;

	@JsonProperty("course_display_price")
	String courseDisplayPrice;

	public String getCourseDisplayPrice() {
		return courseDisplayPrice;
	}

	public void setCourseDisplayPrice(String courseDisplayPrice) {
		this.courseDisplayPrice = courseDisplayPrice;
	}

	public String getCourseId() {
		return this.courseId;
	}

	public void setCourseId(String courseId) {
		this.courseId = courseId;
	}

	public String getCourseCode() {
		return this.courseCode;
	}

	public void setCourseCode(String courseCode) {
		this.courseCode = courseCode;
	}

	public String getCourseTitle() {
		return this.courseTitle;
	}

	public void setCourseTitle(String courseTitle) {
		this.courseTitle = courseTitle;
	}

	public String getCourseDescription() {
		return this.courseDescription;
	}

	public void setCourseDescription(String courseDescription) {
		this.courseDescription = courseDescription;
	}

	public String getCoursePrice() {
		return this.coursePrice;
	}

	public void setCoursePrice(String coursePrice) {
		this.coursePrice = coursePrice;
	}

	public String getCourseRating() {
		return this.courseRating;
	}

	public void setCourseRating(String courseRating) {
		this.courseRating = courseRating;
	}

	public String getNumOfStudents() {
		return this.numOfStudents;
	}

	public void setNumOfStudents(String numOfStudents) {
		this.numOfStudents = numOfStudents;
	}

	public String getCourseIconSmall() {
		return this.courseIconSmall;
	}

	public void setCourseIconSmall(String courseIconSmall) {
		this.courseIconSmall = courseIconSmall;
	}

	public String getCourseIconLarge() {
		return this.courseIconLarge;
	}

	public void setCourseIconLarge(String courseIconLarge) {
		this.courseIconLarge = courseIconLarge;
	}

	public String getCourseCoverImageSnall() {
		return this.courseCoverImageSnall;
	}

	public void setCourseCoverImageSnall(String courseCoverImageSnall) {
		this.courseCoverImageSnall = courseCoverImageSnall;
	}

	public String getCourseCoverImageLarge() {
		return this.courseCoverImageLarge;
	}

	public void setCourseCoverImageLarge(String courseCoverImageLarge) {
		this.courseCoverImageLarge = courseCoverImageLarge;
	}

	public String getTeacherId() {
		return this.teacherId;
	}

	public void setTeacherId(String teacherId) {
		this.teacherId = teacherId;
	}

	public String getTeacherFullName() {
		return this.teacherFullName;
	}

	public void setTeacherFullName(String teacherFullName) {
		this.teacherFullName = teacherFullName;
	}

	public String getTeacherDescription() {
		return this.teacherDescription;
	}

	public void setTeacherDescription(String teacherDescription) {
		this.teacherDescription = teacherDescription;
	}

	public String getTeacherIcon() {
		return this.teacherIcon;
	}

	public void setTeacherIcon(String teacherIcon) {
		this.teacherIcon = teacherIcon;
	}

	public PaymentData getPaymentData() {
		return this.paymentData;
	}

	public void setPaymentData(PaymentData paymentData) {
		this.paymentData = paymentData;
	}

	public String getHasWishList() {
		return this.hasWishList;
	}

	public void setHasWishList(String hasWishList) {
		this.hasWishList = hasWishList;
	}

	public String getSubscription_plan() {
		return this.subscription_plan;
	}

	public void setSubscription_plan(String subscription_plan) {
		this.subscription_plan = subscription_plan;
	}

	public String getCoursePreviewVedioUrl() {
		return this.coursePreviewVedioUrl;
	}

	public void setCoursePreviewVedioUrl(String coursePreviewVedioUrl) {
		this.coursePreviewVedioUrl = coursePreviewVedioUrl;
	}

	public String getIsCoursePurchased() {
		return this.isCoursePurchased;
	}

	public void setIsCoursePurchased(String isCoursePurchased) {
		this.isCoursePurchased = isCoursePurchased;
	}

	public String getProgress() {
		return this.progress;
	}

	public void setProgress(String progress) {
		this.progress = progress;
	}

	protected CourseData(Parcel in) {
		courseId = in.readString();
		courseCode = in.readString();
		courseTitle = in.readString();
		courseDescription = in.readString();
		coursePrice = in.readString();
		courseRating = in.readString();
		numOfStudents = in.readString();
		courseIconSmall = in.readString();
		courseIconLarge = in.readString();
		courseCoverImageSnall = in.readString();
		courseCoverImageLarge = in.readString();
		teacherId = in.readString();
		teacherFullName = in.readString();
		teacherDescription = in.readString();
		teacherIcon = in.readString();
		paymentData = (PaymentData) in.readValue(PaymentData.class
				.getClassLoader());
		hasWishList = in.readString();
		subscription_plan = in.readString();
		coursePreviewVedioUrl = in.readString();
		isCoursePurchased = in.readString();
		progress = in.readString();
		courseDisplayPrice = in.readString();
	}

	public CourseData() {
	}

	public int describeContents() {
		return 0;
	}

	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(courseId);
		dest.writeString(courseCode);
		dest.writeString(courseTitle);
		dest.writeString(courseDescription);
		dest.writeString(coursePrice);
		dest.writeString(courseRating);
		dest.writeString(numOfStudents);
		dest.writeString(courseIconSmall);
		dest.writeString(courseIconLarge);
		dest.writeString(courseCoverImageSnall);
		dest.writeString(courseCoverImageLarge);
		dest.writeString(teacherId);
		dest.writeString(teacherFullName);
		dest.writeString(teacherDescription);
		dest.writeString(teacherIcon);
		dest.writeValue(paymentData);
		dest.writeString(hasWishList);
		dest.writeString(subscription_plan);
		dest.writeString(coursePreviewVedioUrl);
		dest.writeString(isCoursePurchased);
		dest.writeString(progress);
		dest.writeString(courseDisplayPrice);
	}

	public static final Parcelable.Creator<CourseData> CREATOR = new Parcelable.Creator<CourseData>() {
		public CourseData createFromParcel(Parcel in) {
			return new CourseData(in);
		}

		public CourseData[] newArray(int size) {
			return new CourseData[size];
		}
	};
}